package ui;

import io.SubscriptionDTO;
import java.awt.Color;
import java.awt.Component;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JList;

/**
 * Clase que representa un ListCellRenderer custom para mostrar la información
 * de las suscripciones en pantalla. Extiende de la clase
 * DefaultListCellRenderer, y sobreescribe su método
 * getListCellRendererComponent().
 *
 * @author Nicolás Garay
 * @author Alejandro Jacquet
 * @author Rita Romani
 */
public class SubscriptionCellRenderer extends DefaultListCellRenderer {

    /**
     * Sobreescritura del método getListCellRendererComponent() de la clase
     * DefaultListCellRenderer. Una suscripción se muestra de una forma u otra
     * de acuerdo a si su atributo "activo" es verdadero o falso.
     *
     * @param list
     * @param value
     * @param index
     * @param isSelected
     * @param cellHasFocus
     * @return
     */
    @Override
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        /*
         * Llamamos al constructor de la clase padre DefaultListCellRenderer
         * para que se mantenga el mismo comportamiento
         */
        super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
        /*
         * Permite tratar de forma particular a los objetos de la clase SubscriptionDTO
         */
        if (value instanceof SubscriptionDTO) {
            setText(((SubscriptionDTO) value).getNombre());
            if (((SubscriptionDTO) value).getActivo()) {
                setForeground(Color.BLACK);
                setBackground(new Color(147,195,242));
            } else {
                setForeground(Color.RED);
                setBackground(new Color(147,195,242));
            }
        }
        return this;
    }
}
